package landx.toolkit
{
	import landx.toolkit.utils.StringUtil;

	public class StringBuilder
	{
		private var m_text:String="";
		public function StringBuilder(text:String="",...args)
		{
			if(args.length==0){
				append(text);
			}else{
				args.unshift(text);
				appendFormat.apply(this,args);
			}
		}
		
		/**
		 * 追加一段字符 
		 * @param text 追加的字符
		 * 
		 */		
		public function append(text:String=""):void{
			appendFormat(text);
		}
		
		/**
		 * 添加格式化数据 {0},{1}.. 
		 * @param text	格式化的字符串
		 * @param args	格式化的参数
		 */		
		public function appendFormat(text:String="",...args):void{
			var temstr:String=text;
			for(var i:int=0;i<args.length;i++){
				temstr=StringUtil.replace(temstr,"{"+i+"}",args[i].toString());
			}
			m_text=temstr;
			return void;
		}
		
		/**
		 * 添加新的行 
		 * @param text	添加的text
		 * 
		 */		
		public function appendLine(text:String=""):void{
			appendFormat(text+"{0}","\r\n");
		}
		
		/**
		 * 返回最终的结果 
		 * @return 
		 */		
		public function toString():String{
			return m_text;
		}
	}
}